package com.anquing.socket05;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

import com.anquing.socket05.ServerThread;

/**
 * @author Administrator
 *Datagram服务器端
 */
public class UDPServer {


	public static void main(String[] args) {

		try {
			/*
			 * 服务器端接收客户端数据
			 */
			// 1、创建服务器端DatagramSocket,指定相应的端口号
			DatagramSocket datagramSocket = new DatagramSocket(7777);
			System.out.println("********服务器端已经启动，等待客户端的连接*******");
			while(true){
				//2、创建数据报DatagramPacket,用于接收客户端发送的数据
				byte[] data=new byte[1024];
				DatagramPacket datagramPacket = new DatagramPacket(data, data.length);
				//3、接收客户端发送的数据
				datagramSocket.receive(datagramPacket);//此方法在接收到数据报之前会一直阻塞
				ServerThread serverThread = new ServerThread(datagramSocket, datagramPacket, data);
				//设置线程的优先级，范围为[1.10]，默认为5。未设置优先级可能会导致运行时速度非常慢，可降低优先级。
				serverThread.setPriority(4);
				serverThread.start();
			}
		}catch (SocketException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}